#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>

#include <iostream>

int main(){
    // 1. 设置全局刷新策略
    spdlog::flush_every(std::chrono::seconds(1));   //每秒刷新一次
    spdlog::flush_on(spdlog::level::level_enum::debug); //等级为debug及以上就刷新

    // 2. 设置全局日志输出等级
    spdlog::set_level(spdlog::level::level_enum::debug);

    // 3. 创建日志器
    // auto logger = spdlog::stdout_color_mt("default-logger");    //默认同步日志器, 日志器名称为default-logger
    auto logger = spdlog::basic_logger_mt("file-log", "logfile");    //文件日志器，日志输出到 logfile 中

    // 4. 设置日志器的刷新策略以及输出等级 - 已经设置了全局就不需要再次设置
    // logger->flush_on(spdlog::level::level_enum::debug);
    // logger->set_level(spdlog::level::level_enum::debug);

    // 5. 设置日志输出格式
    spdlog::set_pattern("[%n][%H:%M:%S][%t][%-8l] %v");

    // 6. 进行日志输出
    logger->trace("TEST {}", "hello");
    logger->debug("TEST {}", "world");
    logger->warn("TEST {} again {}", 8080, "hello");

    std::cout << "TEST OVER" << std::endl;

    return 0;
}